﻿#define _CRT_SECURE_NO_WARNINGS 1
// 原题连接：https://www.nowcoder.com/practice/562630ca90ac40ce89443c91060574c6?tpId=308&tqId=40490&ru=/exam/oj

/*
题目描述：
给定一个数组，选择一些数，要求选择的数中任意两数差的绝对值不超过
k
k 。问最多能选择多少个数？
输入描述：
第一行输入两个正整数
n
n和
k
k。
第二行输入
n
n 个正整数
a
i
a
i
​
 ，用空格隔开，表示这个数组。
输出描述：
一个正整数，代表能选的最多数量。
数据范围：
1
≤
n
≤
2
×
1
0
5
1≤n≤2×10
5

1
≤
k
,
a
i
≤
1
0
9
1≤k,a
i
​
 ≤10
9

示例1
输入：
5 3
2 1 5 3 2
复制
输出：
4
复制
说明：
显然，1和5不能同时选。所以最多只能选4个数。
*/

// 开始解题：
// 方法——滑动窗口
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 2e5 + 10;
int nums[N];
int n = 0, k = 0, ret = 0;


int main() {
    scanf("%d%d", &n, &k);
    for (int i = 0; i < n; i++) {
        scanf("%d", &nums[i]);
    }
    // 
    sort(nums, nums + n);
    for (int left = 0, right = 0; right < n; right++) {
        while (nums[right] - nums[left] > k) {
            left++;
        }
        ret = max(ret, right - left + 1);
    }
    cout << ret << endl;
    return 0;
}